/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Arbori;

/**
 * Clasa corespunzatoare arborelui functional al expresiei
 * @author AlinT
 */

import Visitor.*;

public class ArboreFunctional {
    /**
    * Strunctura de date folosita pentru a pastra expresia 
     */
	private Nod radacina;
        /**
         * Constructorul explicit
         * @param radacina initializeaza radacina arborelui
         */

	public ArboreFunctional(Nod radacina) {
		this.radacina = radacina;
	}

        /**
         * Functia ce permite parcurgerea arborelui de catre un visitor anume
         * @param v visitorul corespunzator arborelui
         */
         public void acceptVisitor(Visitor v){
            v.visit(radacina);

        }
        /**
         * Functia ce returneaza nodul radacina al arborelui
         * @return nodul radacina al arborelui
         */
        public Nod getRadacina() {
		return radacina;
	}

        /**
         * Functia ce seteaza nodul radacina al arborelui cu
         * @param x nodul care va fi setat ca radacina a arborelui
         */
         //@ assignable radacina
	public void setRadacina(Nod x) {
		this.radacina = x;
	}

}
